Skip to content

feat+docs: settings JSON schema + image input + migration guide#56

Merged
oratis merged 1 commit into
mainfrom
feat/schema-images-migration
May 28, 2026
Merged

feat+docs: settings JSON schema + image input + migration guide#56
oratis merged 1 commit into
mainfrom
feat/schema-images-migration

Conversation

@oratis

@oratis oratis commented May 28, 2026

Copy link
Copy Markdown
Owner

settings.schema.json (draft-07, full coverage) + validateSettingsShallow + VisionProvider abstraction (Stub + OpenAICompat) + Claude Code migration guide. 27 new tests. 522→549 passing.

Three pieces of polish that don't depend on external resources.

  · packages/core/schemas/settings.schema.json (NEW, ~165 lines)
    - Full draft-07 JSON schema for settings.json: top-level
      model/baseURL/apiKeyHelper/effortLevel/permissions/autoMode/sandbox/
      hooks/allowedHttpHookUrls/disableAllHooks/memoryLoadCapKB/
      outputStyle/skillOverrides/mcpServers/disabledPlugins/worktree/voice.
    - Definitions: HookMatcherList, HookHandler, McpServer.
    - Published as a static asset (added to package.json files[]).
    - Users add `"$schema": "https://deepcode.dev/schemas/settings.schema.json"`
      to get IDE autocomplete + validation.

  · packages/core/src/config/schema.ts (NEW)
    - settingsSchemaJson() / settingsSchemaObject() — cached loaders.
    - validateSettingsShallow(obj) — fast checks for model / effortLevel
      / defaultMode / hook event names. 7 unit tests.

  · packages/core/src/vision/index.ts (NEW)
    - VisionProvider interface + ImageContentBlock shape.
    - loadImage() resolves data URL / file path / http(s) URL into
      { contentType, base64, byteSize }.
    - parseDataUrl(), guessContentType() helpers.
    - StubVisionProvider (default; rejects images).
    - OpenAICompatVisionProvider (encodes as data URL → image_url payload,
      enforces maxBytes default 20 MB). Works against Qwen-VL / GPT-4o /
      any OpenAI-compatible multimodal endpoint.
    - 14 unit tests covering data URL + local file + remote URL + size
      cap.

  · docs/MIGRATION_FROM_CLAUDE_CODE.md (NEW)
    - 5-minute switch (rename ~/.claude → ~/.deepcode + CLAUDE.md →
      AGENTS.md).
    - Field-by-field mapping (credentials/settings/skills/agents/plugins).
    - Settings.json model field map.
    - Slash command parity table.
    - Hooks + permissions + sandbox + plugins + MCP + sub-agents:
      identical schemas.
    - Behaviors that DIFFER (DeepSeek-only models, no image input until
      vision provider configured, pipeline-aware sandbox bypass).
    - Behaviors NEW in DeepCode (auto classifier, effort-bench,
      LSP bridge, VS Code extension).

Tests: 522 → 549 passing (+27: 7 schema + 14 vision + adjustments).
Build clean across all 6 packages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@oratis oratis merged commit 69e05ab into main May 28, 2026
@oratis oratis deleted the feat/schema-images-migration branch May 28, 2026 08:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant